跳到主要内容

CAN over TCP读取

CAN over TCP读取

组件名称CAN over TCP read
工具集算盘组件
组件作者雪浪云 - 子陵
文档版本20220614v00
功能组件将接收到的TCP帧解析出其中包含的CAN帧,根据CAN帧更新点位表信息
镜像名称suanpan_c_can_over_tcp_read:0_0.0.1
开发语言C

简介
该组件作为 TCP Client
1 个 TCP 帧包含若干个 CAN 帧
1 个 CAN 帧包含 13 个字节 帧信息:长度 1 个字节,用于标识该 CAN 帧的一些信息,如类型、长度等 FF:标准帧和扩展帧的标识,1 为扩展帧,0 为标准帧。
RTR:远程帧和数据帧的标识,1 为远程帧,0 为数据帧。
保留:保留值为 0,不可写入 1。
D3~D0:标识该 CAN 帧的数据长度。

帧 ID:长度 4 字节,标准帧有效位是 11 位,扩展帧有效位是 29 位。
如标准帧ID号0x3FF的表示方式:

如扩展帧ID号0x12345678的表示方式:

帧数据:长度 8 个字节,有效长度由帧信息的 D3~D0 的值决定。
如 8 字节有效数据的表达方式:

如 6 字节有效数据的表达方式:

以下例子是一个扩展数据帧,ID 为 0x12345678,包含 8 个字节数据(11h、22h、33h、44h、55h、66h、77h、88h)的帧的表达方式:

以下例子是一个标准数据帧,ID 为 0x3FF,包含 6 个字节数据(11h、22h、33h、44h、55h、66h)的帧的表达方式: 功能描述
支持连接 IEM7110-2G 网管型工业级以太网交换机。
支持导入 CAN 的点位表。
支持作为 TCP Client 连接到 TCP Server。
支持输出更新的点位值。
输入桩
组件无输入桩
输出桩
输出端子1
组件有1个输出
端口名称:输出数据
输入类型:JSON格式文本
功能描述:输出更新的点位信息的JSON格式文本
示例:如下所示:
{
"name":"ESTOP",
"value":100
}
数据接收方式
组件无输入桩,异步模式同步模式任选。
参数配置
上传文件,上传特定格式的 csv 点位表,各个字段要按下面范例中给出的顺序和格式填写,其中 name 字段不能有重复, value 字段默认都是0。canid 是 对应 CAN 帧的ID,byte 值是 CAN 帧数据的第几个 byte ,bitmask 是当前 byte 中哪几个 bit ,offset 是相对于 bit 0 的偏移量。

namealiascanidbytebitmaskoffsetvalue
Standby备用0x18A00xFF00
Full_auto全自动截割0x18A10x1040
Cutting_start开始0x18A10x2050
Cutting_pause暂停0x18A10x4060
Cutting_stop停止0x18A10x8070
ESTOP急停0x18A30x0100
Start开机0x18A30x0210
Reset复位0x18A30x0420
Bell_set警铃设置0x18A30x0830
Bell报警0x18A30x1040
Boring支护掘进0x18A30x2050
Reserved_1预留10x18A30x4060
Reserved_2预留20x18A30x8070
.....................
Cutting_up截割升0x18B00xFF00
Cutting_down截割降0x18B10xFF00
Cutting_left截割左0x18B20xFF00
Cutting_right截割右0x18B30xFF00
Cutting_extend截割伸0x18B40x0100
Cutting_shorten截割缩0x18B40x0210
Shovel_up铲板升0x18B40x0420
Shovel_down铲板降0x18B40x0830
Back_support_up后支撑升0x18B40x4060
Back_support_down后支撑降0x18B40x8070
Left_band_forward左履带进0x18B50xFF00
Left_band_backward左履带退0x18B60xFF00
Right_band_forward右履带进0x18B70xFF00
Right_band_backward右履带退0x18C00xFF00
Standby_7备用70x18C10x0100
Standby_8备用80x18C10x0210
Standby_9备用90x18C10x0420
Standby_10备用100x18C10x0830
Standby_11备用110x18C10x1040
Standby_12备用120x18C10x2050
Ground地面0x18C10x4060
Underground井下0x18C10x8070
.....................

执行调优
建议不进行特别配置,按照平台的默认分配运行。
使用方法
未部署状态下的操作
前面板操作
添加“显示文本”组件

后面板操作
添加“can_over_tcp_read”组件,输出端和“显示文本”组件的输入端连接。
在右面板“参数设置”页面,填写TCP Server的地址和端口,比如下面的测试中使用了
10.88.35.251作为地址,32000作为端口号,上传文件处选择要上传的点位表csv文件(文件名必须是 test_can_read.csv),

上传后可以查看

部署状态下的操作
使用网络调试助手作为对接的测试软件,创建一个TCP Server,本地主机地址
10.88.35.251,本地主机端口32000,接受设置为 HEX 可以显示16进制字节数据。

打开Server后,可以看到组件自动连接到了Server,

将网络调试助手的发送设置为HEX可以发送16进制字节数据,在数据发送框中,输入三条包含CAN帧的报文,
08 00 00 01 8A 00 00 00 01 00 00 00 00
08 00 00 01 8B 00 00 00 00 00 00 00 00
08 00 00 01 8C 00 00 00 00 00 00 00 00
点击发送

可以看到前面板的显示文本也显示了json格式的输出

{"name":"ESTOP","value":1}